// package org.wang.portal.task;
//
// import org.wang.portal.status.TaskStatus;
//
// import java.util.HashMap;
// import java.util.Map;
//
// public class TaskManager {
//     private Map<String, MigrationTask> tasks = new HashMap<>();
//
//     public String createTask(String name, String type, Map<String, String> config, DatabaseType sourceDatabaseType, DatabaseType targetDatabaseType) {
//         MigrationTask task;
//         switch (type) {
//             case "ChameleonFullMigration":
//                 task = new ChameleonFullMigrationTask(name, config, sourceDatabaseType, targetDatabaseType);
//                 break;
//             case "DebeziumFullMigration":
//                 task = new DebeziumFullMigrationTask(name, config, sourceDatabaseType, targetDatabaseType);
//                 break;
//             case "DebeziumIncrementalMigration":
//                 task = new DebeziumIncrementalMigrationTask(name, config, sourceDatabaseType, targetDatabaseType);
//                 break;
//             default:
//                 throw new IllegalArgumentException("Unsupported task type: " + type);
//         }
//         tasks.put(name, task);
//         return name;
//     }
//
//     public void startTask(String name) {
//         MigrationTask task = tasks.get(name);
//         if (task != null) {
//             task.execute();
//         }
//     }
//
//     public double getTaskProgress(String name) {
//         MigrationTask task = tasks.get(name);
//         if (task != null) {
//             return task.getProgress();
//         }
//         return 0;
//     }
//
//     public TaskStatus getTaskStatus(String name) {
//         MigrationTask task = tasks.get(name);
//         if (task != null) {
//             return task.getStatus();
//         }
//         return TaskStatus.NOT_STARTED;
//     }
//
//     public MigrationTask getTask(String name) {
//         return tasks.get(name);
//     }
//
//     // Usage: Main task <create/delete/update/query/check/start/stop>
//     public void executeAction(String action) {
//         // 创建迁移任务
//         Map<String, String> config = new HashMap<>();
//         config.put("source", "MySQL");
//         config.put("target", "OpenGauss");
//         String name = createTask("ChameleonTask", "ChameleonFullMigration", config,
//             DatabaseType.MYSQL, DatabaseType.OPENGUASS);
//         // 执行迁移任务流程
//         MigrationTask task = getTask(name);
//         MigrationTaskExecutor executor = new MigrationTaskExecutor(task);
//         executor.execute();
//     }
// }